查看原文
其他

STM32最小系统板教程第三章第4讲|STM32 按键实验

电子开发学习 电子开发学习 2021-01-31

置顶公众号,不错过每一讲内容。




完整课程体系(公众号每日更新一讲):



本讲知识点:按键检测、外部中断



3.4.1   按键实验


这一讲我们来实现开发板上的按键功能,先看一下原理图中按键的驱动电路。


图3-4-1 按键驱动电路


从驱动电路中可以看出,按键驱动电路也是由一个GPIO(PB12)引脚控制,初始化我们把这个管脚配置为上拉输入,因此当按键没有按下时,电路不导通;当按键按下时,管脚电平为低电平,此时电路导通。为了测试按键,我们编写一个按键扫描的程序,同时加入重定向的代码,当检测到按键按下时,通过串口向电脑端的串口助手输出相应信息。


同样,我们复制一份上一讲的代码,在此基础上加入按键代码,同样新建key.c、key.h文件,添加好后贴图如下:


图3-4-2 添加key.c、key.h文件


接下来,在key.c中编写按键程序,贴图如下:



图3-4-3 按键初始化及扫描函数


接下来,我们将按键扫描函数加到主函数里面,编译下载后,打开串口助手,反复按下按键,观察串口助手的输出信息:


图3-4-4 主函数初始化


图3-4-5 串口接线


图3-4-6 串口助手显示


3.4.2   外部中断


经过实际实验我们发现,按键扫描函数检测按键是否按下并不是很准确,接下来给大家介绍一种准确的按键识别方法,就是利用GPIO的外部中断。有关外部中断的配置贴图如下:

 


图3-4-7 外部中断配置


图3-4-8 外部中断服务函数


这里需要注意的是我们配置的工程里没有stm32f10x_it.c和stm32f10x_it.h这两个文件,这个需要我们自己创建添加,stm32f10x_it.c我们添加到USER分组下,stm32f10x_it.h和其他外设头文件路径一致。主函数中包含stm32f10x_it.h头文件,删掉按键扫描函数,编译整个工程下载到开发板上,反复按下用户按键,观察串口助手的打印信息,实测我们发现,利用外部中断的方法检测按键还是比较准确的。



图3-4-9 外部中断法检测按键


本讲内容就到这里,趁热打铁,大家亲自动手试一试吧


视频课程(点击文末左下角“阅读原文”,可看高清视频):


扫描检测按键



外部中断法检测



最小系统板的购买链接(复制到淘宝打开即可):

https://item.taobao.com/item.htm?&id=573256065703


elink32仿真器购买链接(复制到淘宝打开即可):

https://item.taobao.com/item.htm?&id=558334383550


课程系列回顾:


STM32最小系统板教程第一章|开发板资源介绍

STM32最小系统板教程第二章|软件开发环境的介绍与安装

STM32最小系统板教程第二章第2讲|工程模板的搭建

STM32最小系统板教程第三章第1讲|从“点灯”入门STM32

STM32最小系统板教程第三章第2讲|STM32时钟系统及实现准确延时

STM32最小系统板教程第三章第3讲|STM32 UART串口通信





感谢您阅读“电子开发学习”的文章,如果您觉得图文能帮助您学习,欢迎关注我们。请点击右上角按钮,选择“查看公众号”,再点击关注即可。或者可以通过搜索公众号的方式关注: electricstudy  。您可以通过扫码下面的二维码关注我们。如果您想阅读往期文章,可点击“查看历史消息”。





历史好文推荐(点击文章标题可跳转):

小马哥四轴硬件第1讲、    Altium Designer安装与介绍

小马哥四轴硬件第2讲上、原理图讲解之MCU最小系统讲解

小马哥四轴硬件第2讲下、原理图各模块讲解

小马哥四轴硬件第3讲上、AD库制作之原理图库的制作

小马哥四轴硬件第3讲下、AD库制作之PCB封装库的制作

小马哥四轴硬件第4讲上、原理图绘制

小马哥四轴硬件第4讲下、原理图绘制

小马哥四轴硬件第5讲、    用CAD绘制小四轴PCB外形

小马哥四轴硬件第6讲、    四轴PCB板元器件布局

小马哥四轴硬件第7讲上、PCB布线与2.4G模块布线

小马哥四轴硬件第7讲下、PCB布线之电源布线与敷铜

小马哥四轴硬件第8讲、    四轴四层板PCB板设计

小马哥四轴硬件第9讲、    原理图及PCB的检查

C#上位机开发1 |  Hello World!

AD学习—STM32F103最小系统板制作

新手上手STM32是学习库开发还是寄存器开发?

openmv学习2-寻找色块并打印出坐标

如何解决单片机下载程序失败的问题(文末有彩蛋)

如何让Arduino IDE支持你手里的STM32 nucleo开发板

新手如何使用STM32两个月内做出自己的空心杯小四轴(1)

新手如何使用STM32两个月内做出自己的空心杯小四轴(2)

新手如何使用STM32两个月内做出自己的空心杯小四轴(3)

新手如何使用STM32两个月内做出自己的空心杯小四轴(4)

如何根据芯片手册时序图编写驱动程序

双轮平衡车暴力拆解





    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存